#ifndef __PID_H
#define __PID_H

// PID控制器结构体
typedef struct  
{  
    float Setpoint;     // 目标值（设定值）
    float Input;        // 当前测量值
    float Output;       // 输出控制量
    float Kp;           // 比例系数
    float Ki;           // 积分系数
    float Kd;           // 微分系数
    float LastError;    // 上次误差值
    float Integral;     // 积分累积值
} PID_Controller;  

// 外部声明的PID控制器实例
extern PID_Controller panPID;   // 水平方向PID控制器  
extern PID_Controller tiltPID;  // 垂直方向PID控制器    

// 函数声明
void PID_Init(PID_Controller *pid, float kp, float ki, float kd);  // 初始化PID参数
float PID_Compute(PID_Controller *pid, float input);                // 计算PID输出
void PID_SetInput(PID_Controller *pid, float input);                 // 设置当前测量值
void PID_SetSetpoint(PID_Controller *pid, float setpoint);           // 设置目标值

#endif
